﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Presentacion.Contrato.VU_07_Gestionar_Esquema_de_Evaluacion_por_Profesor;
using vudu.ClasesDominio;
using vudu.Logica.Fachada;
using System.Data;

namespace vudu.Presentacion.Presentador.VU_07_Gestionar_Esquema_de_Evaluacion_por_Profesor
{
    public class PresentadorEliminarEsquemaEvaluacion
    {
        private IContratoEliminarEsquemaEvaluacion _vista;
        private EnlaceLogico _fachada;

        //Constructor de la clase
        public PresentadorEliminarEsquemaEvaluacion(IContratoEliminarEsquemaEvaluacion vista, EnlaceLogico fachada)
        {
            _vista = vista;
            _fachada = fachada;
        }

        //LLena la lista de materias que dicta el profesor que tienen plan de evaluacion y que estos planes
        //no tengan notas asignadas
        public void LlenarListaMateriasProfesor(Profesor profesor)
        {
            List<SeccionMateria> materias = _fachada.ConsultarEsquemasDeEvaluacionSinNotasProfesor(profesor);
            DataTable table = new DataTable();
            table.Columns.Add("Materia", typeof(String));
            table.Columns.Add("Seccion", typeof(String));
            //table.Columns.Add("ID", typeof(int));

            foreach (SeccionMateria _materia in materias)
            {
                table.Rows.Add(_materia.Materia.Nombre, _materia.Codigo);
            }

            _vista.Esquemas.Visible = true;
            _vista.Esquemas.DataSource = table;
            _vista.Esquemas.DataBind();
            _vista.Esquemas.Visible = true;

            _vista.Informacion.Text = "Profesor(a): " + profesor.Nombre + " " + profesor.Apellido;
            
        }

        
        //Elimina el esquema de evaluacion seleccionado por el usuario
        public void EliminarEsquema(Profesor profesor)
        {
            List<SeccionMateria> materias = _fachada.ConsultarEsquemasDeEvaluacionSinNotasProfesor(profesor);
            int Seleccion = (_vista.Esquemas.PageIndex * 8) + _vista.Esquemas.SelectedIndex;
            int idseccion = materias[Seleccion].IdSeccionMateria;

            SeccionMateria esquemaeliminar = new SeccionMateria();
            esquemaeliminar.IdSeccionMateria = idseccion;

            if (_fachada.EliminarEsquemaDeEvaluacion(esquemaeliminar))
            {
                _vista.Mensaje.Text = "Operacion Exitosa: Se elimino Esquema de Evaluación";
                _vista.Mensaje.CssClass = "transaccionExitosa";
                _vista.Mensaje.Visible = true;
                LlenarListaMateriasProfesor(profesor);
            }
            else
            {
                _vista.Mensaje.Text = "Operacion Fallida: No se pudo eliminar Esquema de Evaluación";
                _vista.Mensaje.CssClass = "transaccionFallida";
                _vista.Mensaje.Visible = true;
                LlenarListaMateriasProfesor(profesor);
            }




        }

    }
}